/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package conectar;

import java.sql.*;

/**
 *
 * @author Rafael
 */
public class Conectar {

    public Connection miconexion = null;
    public Statement stSentencias = null;
    public ResultSet rsDatos = null , datosCandidatos=null;
    public PreparedStatement psPrepararSentencia = null;

    public Conectar() throws SQLException, ClassNotFoundException {
        try {
            Class.forName("com.mysql.jdbc.Driver");

            String url = "jdbc:mysql://localhost:3306/votoelectronico";

            miconexion = DriverManager.getConnection(url, "root", "");

            stSentencias = miconexion.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

        } catch (ClassCastException ex) {
            throw ex;
        } catch (SQLException ex1) {
            throw ex1;
        } 

    }

    public ResultSet consulta(String sql) throws SQLException {
        try {
            //Solo para hacer consultas
            rsDatos = stSentencias.executeQuery(sql);
        } catch (SQLException ex) {
            throw ex;
        }

        return rsDatos;
    }

    //realizar inserciones y eliminaciones
    public void ejecutar(String sql) throws SQLException {
        try {
            stSentencias.execute(sql);
        } catch (SQLException ex) {
            throw ex;
        }
    }
    
    public void actualizar(String sql) throws SQLException{
        try{
            stSentencias.executeUpdate(sql);
        }catch(SQLException ex){
            throw ex;
        }
    }
    
    public void desconectar(){
        try{ 
            miconexion.close();
            stSentencias.close();
            rsDatos.close();
        } 
        catch(Exception ex){ 
            System.out.println("No se cerró la conexion existente a MySQL"); 
            ex.printStackTrace();
            ex.getMessage();
        }
    }
    
    //--------------------- Retorno los votos cifrados--------------------
    
    public ResultSet consultarVoto() throws SQLException {
        
        String sql1="SELECT * FROM `voto`";        
        try {
            stSentencias=getCon().createStatement();
            rsDatos=stSentencias.executeQuery(sql1);
            return rsDatos;
            }    
        catch(SQLException e){System.out.println(e);}
        stSentencias.close();
     
        return null;
       
   }
    
    //----------------------------------------------------------
    
     
    public ResultSet datosCandidatos() throws SQLException  {
        
        
            String sql = "select * from candidato";       
        try {
            stSentencias=getCon().createStatement();
            datosCandidatos=stSentencias.executeQuery(sql);
            return datosCandidatos;
            }    
        catch(SQLException e){System.out.println(e);}
        stSentencias.close();
     
        return null;
        
       
        }
    
    public ResultSet datosGanador(int ganador) throws SQLException  {
        
        
            String sql = "SELECT  * FROM  candidato WHERE id ="+ganador+"";       
        try {
            stSentencias=getCon().createStatement();
            datosCandidatos=stSentencias.executeQuery(sql);
            return datosCandidatos;
            }    
        catch(SQLException e){System.out.println(e);}
        stSentencias.close();
     
        return null;
        
       
        }
    
    
    
    
       public int numeroCandidatos() throws SQLException  {
        
        
            String sql = "SELECT COUNT(*) as num FROM candidato";       
        try {
            stSentencias=getCon().createStatement();
            datosCandidatos=stSentencias.executeQuery(sql);
            
            datosCandidatos.next();
            int num=datosCandidatos.getInt("num");
            return num;
            }    
        catch(SQLException e){System.out.println(e);}
        stSentencias.close();
     
        return 0;
        
       
        }
    
    
    
    

     public Connection getCon() {
        return miconexion;
    }
}
